package com.mf.ergate.web.service.opt;

import com.mf.ergate.api.opt.model.dto.OrgContractCreateDto;
import com.mf.ergate.api.opt.model.dto.OrgContractDeleteDto;
import com.mf.ergate.api.opt.model.dto.OrgContractQueryDto;
import com.mf.ergate.api.opt.model.dto.OrgContractUpdateDto;
import com.mf.ergate.api.opt.model.vo.OrgContractVo;
import com.mf.ergate.api.opt.model.vo.OrgInfoVo;
import com.mf.framework.common.model.Page;

import java.util.List;

/**
 * 机构合同Service层接口类
 * User: zhaoming
 * DateTime: 2019-04-16
 * To change this template use File | Settings | File Templates.
 **/
public interface OrgContractService {

    /**
     * 新增
     * @param orgContractCreateDto 机构合同新增Dto
     * @return 机构合同
     */
    OrgContractVo insert(OrgContractCreateDto orgContractCreateDto);
    
    /**
     * 根据唯一编号更新
     * @param orgContractUpdateDto 机构合同更新Dto
     * @return 执行结果
     */
    Boolean updateByUniqueNo(OrgContractUpdateDto orgContractUpdateDto);
    
    /**
     * 根据唯一编号删除(逻辑删除)
     * @param orgContractDeleteDto 机构合同删除Dto
     * @return 执行结果
     */
    Boolean deleteByUniqueNo(OrgContractDeleteDto orgContractDeleteDto);
    
    /**
     * 根据唯一编号查询
     * @param uniqueNo 机构合同编号
     * @return 机构合同
     */
    OrgContractVo selectByUniqueNo(String uniqueNo);
    
    /**
     * 根据条件查询
     * @param orgContractQueryDto 机构合同查询Dto
     * @return 机构合同列表
     */
    List<OrgContractVo> selectByCondition(OrgContractQueryDto orgContractQueryDto);

    /**
     * 根据条件查询数量
     * @param orgContractQueryDto 机构合同查询Dto
     * @return 数量
     */
    Integer selectCount(OrgContractQueryDto orgContractQueryDto);

    /**
     * 根据条件分页查询
     * @param page 远程分页
     * @param orgContractQueryDto 机构合同查询Dto
     * @return 机构合同分页列表
     */
    Page<OrgContractVo> selectPage(Page page, OrgContractQueryDto orgContractQueryDto);

    /**
     * 获取机构列表
     * @return 机构列表
     */
    List<OrgInfoVo> getOrgInfos();
}
